package cn.iocoder.yudao.module.member.user.service;

import cn.iocoder.yudao.module.member.user.dal.dataobject.MemberUserDO;
import cn.iocoder.yudao.module.member.user.vo.AppAuthLoginRespVO;
import cn.iocoder.yudao.module.member.user.vo.AppAuthRegisterReqVO;
import cn.iocoder.yudao.module.member.user.vo.AppAuthRegisterReqVOV2;
import jakarta.validation.Valid;

/**
 * <pre>
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 *  用户注册 Service 实现类
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 * </pre>
 *
 * @author 山野羡民（1032694760@qq.com）
 * @since 2024/11/29
 */
@SuppressWarnings("UnusedReturnValue")
public interface MemberRegisterService {

    /**
     * 【用户名 + 密码】注册
     *
     * @param reqVO 注册信息
     * @return 注册后的登录结果
     */
    AppAuthLoginRespVO register(@Valid AppAuthRegisterReqVO reqVO);

    /**
     * 【手机号码 + 短信验证码 + 密码】注册
     *
     * @param reqVO 注册信息
     * @return 用户对象
     */
    MemberUserDO register(AppAuthRegisterReqVOV2 reqVO);

    /**
     * 绑定邀请关系
     */
    boolean bindRelation(Long userId, String inviteCode);

    /**
     * 绑定邀请关系
     */
    boolean bindRelation(Long userId, Long inviteUserId);

}
